home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 6 / CU Amiga Magazine's Super CD-ROM 06 (1996)(EMAP Images)(GB)(Track 1 of 4)[!][issue 1997-01].iso / cucd / prog / mui / muibuilder / mb / developer / autodocs / muibuilder.doc
Text File  |  1995-04-19  |  11KB  |  382 lines

  1. TABLE OF CONTENTS
  2.  
  3. MUIBuilder.library/--background--
  4. MUIBuilder.library/MB_Open
  5. MUIBuilder.library/MB_Close
  6. MUIBuilder.library/MB_GetA
  7. MUIBuilder.library/MB_GetVarInfoA
  8. MUIBuilder.library/MB_GetNextCode
  9. MUIBuilder.library/MB_GetNextNotify
  10.  
  11.  
  12. MUIBuilder.library/--background--
  13.     The goal of the muibuilder library is, at this time, to provide some
  14.     functions to help the writing of MUIBuilder external generators.
  15.  
  16.     These functions are described in the following documentation.
  17.  
  18.  
  19. MUIBuilder.library/MB_Open
  20.  
  21.    NAME
  22.     MB_Open
  23.  
  24.   SYNOPSIS
  25.     bool = MB_Open();
  26.  
  27.     BOOL MB_Open( void );
  28.  
  29.   FUNCTION
  30.     Opens the MUIBuilder temporary files, and initializes global
  31.     variables.
  32.  
  33.   RESULT
  34.     bool : a boolean : the function returns TRUE ( 1 ) if all
  35.            file openings and memory allocations have succeeded
  36.  
  37.   WARNING
  38.     none of the other functions will work if this one is not successful
  39.  
  40.   SEE ALSO
  41.     MB_Close()
  42.  
  43.  
  44. MUIBuilder.library/MB_Close
  45.  
  46.    NAME
  47.     MB_Close
  48.  
  49.   SYNOPSIS
  50.     MB_Close();
  51.  
  52.     void MB_Close( void );
  53.  
  54.   FUNCTION
  55.     Closes the temporary files and deallocates memory
  56.  
  57.   WARNING
  58.     don't forget to call this function before exiting your generator,
  59.     even if MB_Open() call failed.
  60.  
  61.   SEE ALSO
  62.     MB_Open()
  63.  
  64.  
  65. MUIBuilder.library/MB_GetA
  66.  
  67.   NAME
  68.     MB_GetA    
  69.     MB_Get
  70.  
  71.   SYNOPSYS
  72.     MB_GetA( Tags );
  73.           A1
  74.  
  75.     MB_GetA( struct TagItem * );
  76.  
  77.     MB_Get ( Tag Tag1, ... );
  78.  
  79.   FUNCTION
  80.     This function enables you to get the initialization values
  81.     for the generator ( such as the file name of the file you
  82.     have to create ... )
  83.     These values are here to give you some informations, such as
  84.     the name of the file to generate, the name of the catalog file,
  85.     the number of variables needed in the program the generator must
  86.     create ... and so on ...
  87.  
  88.   INPUTS
  89.     tags - pointer to a tag list
  90.  
  91.   TAGS
  92.     tags for use with this function:
  93.  
  94.     MUIB_FileName ( STRPTR* )     - returns the name of the file to generate.
  95.  
  96.     MUIB_CatalogName( STRPTR* )     - same as above for MUIB_FileName
  97.                           returns the name of the .cd file.
  98.  
  99.     MUIB_GetStringName( STRPTR* )     - same as above for MUIB_FileName
  100.                         returns the name of the GetString function.
  101.  
  102.     MUIB_Code( BOOL* )         - return in the variable if the user wants
  103.                          the code to be generated.
  104.  
  105.     MUIB_Environment ( BOOL* )     - will return TRUE in the variable
  106.                          if the user wants an environment
  107.                          You must interpret this value in the generator.
  108.                         (please try GenCodeC to see the consequence)
  109.  
  110.     MUIB_Locale ( BOOL* )         - will return TRUE if the user wants
  111.                     a localised code
  112.  
  113.     MUIB_Declarations ( BOOL* )     - will return TRUE if the user wants
  114.                           the declarations
  115.  
  116.     MUIB_VarNumber ( ULONG* )     - will return in the variable the number
  117.                          of variables declared in the generated code
  118.  
  119.     MUIB_Application ( BOOL* )    - will return TRUE in the given variable if
  120.                     the user generates the whole application
  121.  
  122.   EXAMPLE
  123.     ULONG    varnb;
  124.     BOOL    Code, Env, Locale, Declarations;
  125.     char    *FileName, *CatalogName, *GetString;
  126.  
  127.     MB_Get    (
  128.         MUIB_VarNumber        , &varnb,
  129.         MUIB_Code        , &Code,
  130.         MUIB_Environment    , &Env,
  131.         MUIB_Locale        , &Locale,
  132.         MUIB_Declarations    , &Declarations,
  133.         MUIB_FileName        , &FileName,
  134.         MUIB_CatalogName    , &CatalogName,
  135.         MUIB_GetStringName    , &GetString,
  136.         TAG_END
  137.         );
  138.  
  139.     After this call :
  140.         - varnb contains the number of variables to be generated
  141.         - Code  contains TRUE or FALSE (depending on the user choice)
  142.         - Env   contains TRUE or FALSE
  143.         - Declarations contains TRUE or FALSE
  144.         - FileName is a pointer on the File name
  145.         - CatalogName is a pointer on the Catalog name
  146.         - GetString is a pointer on the GetString function name
  147.  
  148.   WARNING
  149.     this function will do NOTHING if MB_Open() was not successful, or
  150.     was not called.
  151.  
  152.   SEE ALSO
  153.     MB_GetVarInfoA, MB_GetNextCode, MB_GetNextNotify.
  154.  
  155. MUIBuilder.library/MB_GetVarInfoA
  156.  
  157.   NAME
  158.     MB_GetVarInfoA    
  159.     MB_GetVarInfo
  160.  
  161.   SYNOPSYS
  162.     MB_GetVarInfoA( variable_number, Tags );
  163.                     D0      A1
  164.  
  165.     MB_GetVarInfoA( ULONG, struct TagItem * );
  166.  
  167.     MB_GetVarInfo ( ULONG, Tag Tag1, ... );
  168.  
  169.   FUNCTION
  170.     get infos on the variable number 'variable_number'. This info
  171.     can be its name, its size, its type or how you have to initialise
  172.     the variable.
  173.  
  174.   INPUTS
  175.     variable_number    - number of the variable for which you want to
  176.               get info
  177.  
  178.     Tags        - pointer to a list of tags giving the information
  179.               you want to get
  180.  
  181.   TAGS
  182.     MUIB_VarSize ( ULONG* )    - get the size of the variable
  183.             this size is :
  184.             - for a string array  : its size
  185.             - for a string          : its length
  186.             - for all other types : 0
  187.  
  188.     MUIB_VarName ( STRPTR* ) - get the name of the variable
  189.  
  190.     MUIB_VarType ( ULONG* ) - get the type of the variable
  191.             this type could be :
  192.             - TYPEVAR_BOOL        (1)    Boolean
  193.             - TYPEVAR_INT        (2) Integer ( 4 bytes long )
  194.             - TYPEVAR_STRING    (3) String Pointer
  195.             - TYPEVAR_TABSTRING (4) Strings Array
  196.             - TYPEVAR_PTR        (5) Pointer
  197.             - TYPEVAR_HOOK        (6) Function Hook
  198.             - TYPEVAR_IDENT        (7) A constant identifier (i.e. ID_ReturnValue)
  199.             - TYPEVAR_EXTERNAL  (8) External variable
  200.             - TYPEVAR_LOCAL_PTR (9) A pointer local to the Create procedure
  201.         /* NEW TO VERSION 2.2 */
  202.             - TYPEVAR_EXTERNAL_PTR (10)
  203.                         A pointer to an object not defined in the
  204.                         code the user wants to generate. This pointer
  205.                         should appear as a parameter of the creation
  206.                         procedure.
  207.  
  208.     MUIB_VarInitPtr ( ULONG* ) - get the pointer to the init zone
  209.             of the specified variable
  210.             This 'init zone' could be :
  211.             - a string ending with '\0' ( for a string )
  212.             - the list of the strings   ( for a strings array )
  213.             - just a '\0' for all other types
  214.             
  215.   EXAMPLE
  216.     ULONG    i, type, size;
  217.     char    *name, *inits;
  218.  
  219.     MB_GetVarInfo( i,
  220.                MUIB_VarType    , &type,
  221.                MUIB_VarName    , &name,
  222.                MUIB_VarSize    , &size,
  223.                MUIB_VarInitPtr    , &inits,
  224.                TAG_END
  225.              );
  226.   WARNING
  227.     this function will do NOTHING if MB_Open() was not successful, or
  228.     was not called.
  229.  
  230.   SEE ALSO
  231.     MB_GetA(), MB_GetNextCode(), MB_GetNextNotify()
  232.  
  233. MUIBuilder.library/MB_GetNextCode
  234.  
  235.   NAME
  236.     MB_GetNextCode
  237.  
  238.   SYNOPSIS
  239.     MB_GetNextCode( type, code );
  240.              A0    A1
  241.  
  242.     void MB_GetNextCode( ULONG*, char** );
  243.  
  244.   FUNCTION
  245.     get the next code element. You just have to read every code element.
  246.     Then you react depending on the code element type you receive.
  247.  
  248.   RESULT
  249.     type     - will contain the type of the code element to write
  250.           this type could be :
  251.  
  252.             TC_CREATEOBJ        : creation of a MUI object
  253.             TC_ATTRIBUT        : name of an object attribute
  254.             TC_END            : end of an object creation
  255.             TC_FUNCTION        : opening of a function
  256.             TC_STRING        : a string
  257.             TC_INTEGER        : an integer
  258.             TC_CHAR            : a character
  259.             TC_VAR_AFFECT        : affectation of a variable
  260.             TC_VAR_ARG        : variable as argument
  261.             TC_END_FUNCTION     : end of a function call
  262.             TC_BOOL            : boolean
  263.             TC_MUIARG        : a mui argument
  264.             TC_OBJFUNCTION        : function creating an object
  265.             TC_LOCALESTRING     : a locale string reference
  266.             TC_EXTERNAL_CONSTANT    : reference to an external constant
  267.                           (i.e. not created by MUIBuilder)
  268.             TC_EXTERNAL_FUNCTION    : reference to an external function
  269.                           (i.e. not created by MUIBuilder)
  270.             TC_MUIARG_ATTRIBUT    : a MUI attribute as argument
  271.             TC_MUIARG_FUNCTION    : a function as argument
  272.             TC_MUIARG_OBJ        : an object as argument of a MUI attribute
  273.             TC_BEGIN_NOTIFICATION    : the beginning of a notification
  274.             TC_END_NOTIFICATION    : the end of a notification
  275.             TC_EXTERNAL_VARIABLE    : reference to an external variable
  276.                           (ie not generated by MUIBuilder)
  277.             TC_MUIARG_OBJFUNCTION    : an object function as argument
  278.             TC_OBJ_ARG        : an object take as argument
  279.             TC_LOCALECHAR        : a locale char
  280.  
  281.     code    - is a pointer, and will contain the pointer to the
  282.           code you have to write. THIS CODE IS ALWAYS A STRING.
  283.           to obtain a number or a boolean, you have to convert this string !
  284.  
  285.                 type    /    code obtained
  286.  
  287.             TC_CREATEOBJ        : the number of the object
  288.             TC_ATTRIBUT        : the number of the attribute
  289.             TC_END            : the number of 'End'
  290.             TC_FUNCTION        : the number of the function
  291.             TC_STRING        : the string ( ending with '\0' )
  292.             TC_INTEGER        : the value of the integer
  293.             TC_CHAR            : the character
  294.             TC_VAR_AFFECT        : the number of the variable
  295.                         ( you can get infos with MB_GetVarInfo )
  296.             TC_VAR_ARG        : the number of the variable
  297.             TC_END_FUNCTION     : the number of 'End'
  298.             TC_BOOL            : '0' [ FALSE ] or '1' [ TRUE ]
  299.             TC_MUIARG        : the number of the MUI string
  300.             TC_OBJFUNCTION        : the number of the MUI function
  301.             TC_LOCALESTRING     : the string MSG_xxxxx ( ending with '\0' )
  302.             TC_LOCALECHAR        : the string MSG_xxxxx ( ending with '\0' )
  303.             TC_EXTERNAL_CONSTANT    : name of the constant
  304.             TC_EXTERNAL_FUNCTION    : name of the function
  305.             TC_MUIARG_ATTRIBUT    : number of the attribute
  306.             TC_MUIARG_FUNCTION    : Number of the function
  307.             TC_MUIARG_OBJ        : Number of the object
  308.             TC_BEGIN_NOTIFICATION    : Number of the variable taken as argument of the
  309.                           notification
  310.             TC_END_NOTIFICATION    : end of the notification (no special return)
  311.             TC_EXTERNAL_VARIABLE    : name of the variable
  312.             TC_MUIARG_OBJFUNCTION    : number of the object
  313.             TC_OBJ_ARG        : number of the object taken as argument
  314.  
  315.         When you read a TC_LOCALE_STRING, you will generate a call to a GetMBString
  316.         function. There is then two case depending on the string in the catalog
  317.         file :
  318.             1. A\00A try : In this case your function must return "A Try"
  319.             2. A Try     : In this case your function must return "A Try"
  320.         This function MUST use the user-defined GetString function.
  321.  
  322.         When you read TC_LOCALE_CHAR, you must return the first char of the
  323.         String you get after the call to the user-defined GetString Function.
  324.  
  325.   EXAMPLE
  326.     ULONG    type;
  327.     char    *code;
  328.  
  329.     MB_GetNextCode( &type, &code );
  330.  
  331.     switch ( type )
  332.     {
  333.             .
  334.             .
  335.             .
  336.         case TC_FUNCTION:
  337.             ...
  338.             break;
  339.             .
  340.             .
  341.         case TC_VAR_ARG:
  342.             ...
  343.             break;
  344.             .
  345.             .
  346.             .
  347.         default:
  348.             /* Do NOTHING to ensure compatibility with the next versions */
  349.             break;
  350.     }
  351.  
  352.   WARNING
  353.     this function will do NOTHING if MB_Open() was not successful, or
  354.     was not called.
  355.  
  356.   SEE ALSO
  357.     MB_GetA(), MB_GetVarInfoA(), MB_GetNextNotify().
  358.  
  359. MUIBuilder.library/MB_GetNextNotify
  360.  
  361.   NAME
  362.     MB_GetNextNotify
  363.  
  364.   SYNOPSIS
  365.     MB_GetNextNotify( type, code );
  366.                A0    A1
  367.  
  368.     void MB_GetNextNotify( ULONG*, char** );
  369.  
  370.   FUNCTION
  371.     get the next notify element.
  372.  
  373.     ALL specifications are exactly the same as GetNextCode. The only
  374.     difference is that this function gets the notify elements.
  375.  
  376.   WARNING
  377.     this function will do NOTHING if MB_Open() was not successful, or
  378.     was not called.
  379.  
  380.   SEE ALSO
  381.     MB_GetA(), MB_GetVarInfoA(), MB_GetNextCode().
  382.